﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{
    public partial class verPagos : Form
    {
        public verPagos()
        {
            InitializeComponent();
        }
       
        GestiónAcademia ges = new GestiónAcademia();
        GestionFgut g = new GestionFgut();
        
        private void txtpagar_Validating(object sender, CancelEventArgs e)
        {
            int deuda;
                int pagar;
                if (int.TryParse(txtdeuda.Text, out deuda) && int.TryParse(txtpagar.Text, out pagar))
                {
                    if (pagar > deuda)
                    {
                        MessageBox.Show("No puede pagar más de lo que debe.", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        txtpagar.Focus();
                    }
                }
        }

        private void btcargar_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrWhiteSpace(txtrutbuscar.Text))
            {
                MessageBox.Show("Ingrese un RUT para buscar.", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {

                string rutcompleto = txtrutbuscar.Text + txtdigito.Text;
                if (g.ExisteAlumno(rutcompleto) == true)
                {
                    txtrut.Text = rutcompleto;
                    txtnombre.Text = ges.nombreAlum(rutcompleto);
                    txtdeuda.Text = ges.Deuda(rutcompleto).ToString();
                    btpagar.Enabled = true;
                }
                else
                {
                    MessageBox.Show("El RUT ingresado no está registrado", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
        }

        private void txtrutbuscar_TextChanged(object sender, EventArgs e)
        {
            if (txtrutbuscar.Text == "")
            {
                txtdigito.Text = "";
            }
            if (txtrutbuscar.TextLength == 7 || txtrutbuscar.TextLength == 8)
            {
                int rut = Convert.ToInt32(txtrutbuscar.Text);
                string digito = g.digitoVerificador(rut);
                txtdigito.Text = digito;
            }
        }

        private void btpagar_Click(object sender, EventArgs e)
        {
            int pagar, deuda;
            if (int.TryParse(txtpagar.Text, out pagar) && int.TryParse(txtdeuda.Text, out deuda))
            {
                int deudaPosterior = Convert.ToInt32(ges.Deuda(txtrut.Text)) - pagar;
               
                //  DateTime Hoy = DateTime.Today;
                //string fecha_actual = fechaActual.Text;
                string estado="";
                if(pagar == deuda){
                    estado="pagado";
                }else if(pagar < deuda){
                    estado="incompleto";
                }else{
                     MessageBox.Show("El pago no puede ser mayor a la deuda.","Información",MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                if (deudaPosterior == 0) {
                    estado = "pagado";
                }
                MessageBox.Show(ges.insertarPago(txtrut.Text, txtnombre.Text, DateTime.Now.Date.ToString(), estado, pagar),"Información",MessageBoxButtons.OK, MessageBoxIcon.Information);

                string sql = "update alumno set total_pagar="+ deudaPosterior +" where rut ='"+txtrut.Text+"'";
                ges.BDupdate(sql);

                grillaPagos.DataSource = ges.getPagos();
                grillaPagos.DataMember = "pagos";

                grillaAlumnos.DataSource = ges.getAlumnos();
                grillaAlumnos.DataMember = "alumnos";
                llenarGrilla();
            }
        }

        public void llenarGrilla()
        {
            grillaAlumnos.Columns[0].HeaderText = "Rut Alumno";
            grillaAlumnos.Columns[1].HeaderText = "Nombre";
            grillaAlumnos.Columns[2].HeaderText = "Fecha Nac";
            grillaAlumnos.Columns[3].HeaderText = "Sexo";
            grillaAlumnos.Columns[4].HeaderText = "Teléfono";
            grillaAlumnos.Columns[5].HeaderText = "Celular";
            grillaAlumnos.Columns[6].HeaderText = "Email";
            grillaAlumnos.Columns[7].HeaderText = "Avisar a";
            grillaAlumnos.Columns[8].HeaderText = "Dirección";
            grillaAlumnos.Columns[9].HeaderText = "Teléfono";
            grillaAlumnos.Columns[10].HeaderText = "Celular";
            grillaAlumnos.Columns[11].HeaderText = "Email";
            grillaAlumnos.Columns[12].HeaderText = "Grupo Sangre";
            grillaAlumnos.Columns[13].HeaderText = "Alérgico a";
            grillaAlumnos.Columns[14].HeaderText = "Previsión";
            grillaAlumnos.Columns[15].HeaderText = "Estatura";
            grillaAlumnos.Columns[16].HeaderText = "Peso";
            grillaAlumnos.Columns[17].HeaderText = "Calzado";
            grillaAlumnos.Columns[18].HeaderText = "Talla Traje";
            grillaAlumnos.Columns[19].HeaderText = "Talla Buzo";
            grillaAlumnos.Columns[20].HeaderText = "Convenio";
        }


        private void verPagos_Load(object sender, EventArgs e)
        {
            cbFiltro.SelectedIndex = 0;
            btpagar.Enabled = false;

            grillaPagos.DataSource = ges.getPagos();
            grillaPagos.DataMember = "pagos";

            grillaAlumnos.DataSource = ges.getAlumnos();
            grillaAlumnos.DataMember = "alumnos";
            llenarGrilla();
            
        }

        private void txtpagar_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (Char.IsDigit(e.KeyChar))
            {
                e.Handled = false;
            }
            else
                if (Char.IsControl(e.KeyChar)) //permitir teclas de control como retroceso 
                {
                    e.Handled = false;
                }
                else
                {
                    //el resto de teclas pulsadas se desactivan 
                    e.Handled = true;
                }
        }

        private void cbFiltro_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cbFiltro.Text == "Todos")
            {
                txtbusqueda.Enabled = false;
                grillaPagos.DataSource = ges.verPagos("");
                grillaPagos.DataMember = "PAGOS";
                //    llenarGrilla();
            }
            else
            {
                txtbusqueda.Enabled = true;
                grillaPagos.DataSource = ges.verPagos(" WHERE " + cbFiltro.Text + " LIKE '%" + txtbusqueda.Text + "%' OR " + cbFiltro.Text + " LIKE '%" + txtbusqueda.Text + "%' OR " + cbFiltro.Text + " LIKE '%" + txtbusqueda.Text + "%' OR " + cbFiltro.Text + " LIKE '%" + txtbusqueda.Text + "%' OR " + cbFiltro.Text + " LIKE '%" + txtbusqueda.Text + "%' ");
                grillaPagos.DataMember = "PAGOS";
            }

        }

        private void txtbusqueda_TextChanged(object sender, EventArgs e)
        {
            grillaPagos.DataSource = ges.verPagos(" WHERE " + cbFiltro.Text + " LIKE '%" + txtbusqueda.Text + "%' OR " + cbFiltro.Text + " LIKE '%" + txtbusqueda.Text + "%' OR " + cbFiltro.Text + " LIKE '%" + txtbusqueda.Text + "%' OR " + cbFiltro.Text + " LIKE '%" + txtbusqueda.Text + "%' OR " + cbFiltro.Text + " LIKE '%" + txtbusqueda.Text + "%' ");
            grillaPagos.DataMember = "PAGOS";
        }
    }
}
